home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 25 / Cream of the Crop 25.iso / doom / axxwar_1.zip / SOURCES / DEFS.QC < prev    next >
Text File  |  1997-03-11  |  25KB  |  965 lines

  1. // Axxwars v1.0 
  2.  
  3. /*
  4. ==============================================================================
  5.  
  6.             SOURCE FOR GLOBALVARS_T C STRUCTURE
  7.  
  8. ==============================================================================
  9. */
  10.  
  11. //
  12. // system globals
  13. //
  14. entity        self;
  15. entity        other;
  16. entity        world;
  17. float        time;
  18. float        frametime;
  19.  
  20. float        force_retouch;        // force all entities to touch triggers
  21.                                 // next frame.  this is needed because
  22.                                 // non-moving things don't normally scan
  23.                                 // for triggers, and when a trigger is
  24.                                 // created (like a teleport trigger), it
  25.                                 // needs to catch everything.
  26.                                 // decremented each frame, so set to 2
  27.                                 // to guarantee everything is touched
  28. string        mapname;
  29.  
  30. float        deathmatch;
  31. float        coop;
  32. float        teamplay;
  33.  
  34. float        serverflags;        // propagated from level to level, used to
  35.                                 // keep track of completed episodes
  36.  
  37. float        total_secrets;
  38. float        total_monsters;
  39.  
  40. float        found_secrets;        // number of secrets found
  41. float        killed_monsters;    // number of monsters killed
  42.  
  43.  
  44. // spawnparms are used to encode information about clients across server
  45. // level changes
  46. float        parm1, parm2, parm3, parm4, parm5, parm6, parm7, parm8, parm9, parm10, parm11, parm12, parm13, parm14, parm15, parm16;
  47.  
  48. //
  49. // global variables set by built in functions
  50. //    
  51. vector        v_forward, v_up, v_right;    // set by makevectors()
  52.     
  53. // set by traceline / tracebox
  54. float        trace_allsolid;
  55. float        trace_startsolid;
  56. float        trace_fraction;
  57. vector        trace_endpos;
  58. vector        trace_plane_normal;
  59. float        trace_plane_dist;
  60. entity        trace_ent;
  61. float        trace_inopen;
  62. float        trace_inwater;
  63.  
  64. entity        msg_entity;                // destination of single entity writes
  65.  
  66. //
  67. // required prog functions
  68. //
  69. void()         main;                        // only for testing
  70.  
  71. void()        StartFrame;
  72.  
  73. void()         PlayerPreThink;
  74. void()         PlayerPostThink;
  75.  
  76. void()        ClientKill;
  77. void()        ClientConnect;
  78. void()         PutClientInServer;        // call after setting the parm1... parms
  79. void()        ClientDisconnect;
  80.  
  81. void()        SetNewParms;            // called when a client first connects to
  82.                                     // a server. sets parms so they can be
  83.                                     // saved off for restarts
  84.  
  85. void()        SetChangeParms;            // call to set parms for self so they can
  86.                                     // be saved for a level transition
  87.  
  88.  
  89. //================================================
  90. void        end_sys_globals;        // flag for structure dumping
  91. //================================================
  92.  
  93. /*
  94. ==============================================================================
  95.  
  96.             SOURCE FOR ENTVARS_T C STRUCTURE
  97.  
  98. ==============================================================================
  99. */
  100.  
  101. //
  102. // system fields (*** = do not set in prog code, maintained by C code)
  103. //
  104. .float        modelindex;        // *** model index in the precached list
  105. .vector        absmin, absmax;    // *** origin + mins / maxs
  106.  
  107. .float        ltime;            // local time for entity
  108. .float        movetype;
  109. .float        solid;
  110.  
  111. .vector        origin;            // ***
  112. .vector        oldorigin;        // ***
  113. .vector        velocity;
  114. .vector        angles;
  115. .vector        avelocity;
  116.  
  117. .vector        punchangle;        // temp angle adjust from damage or recoil
  118.  
  119. .string        classname;        // spawn function
  120. .string        model;
  121. .float        frame;
  122. .float        skin;
  123. .float        effects;
  124.  
  125. .vector        mins, maxs;        // bounding box extents reletive to origin
  126. .vector        size;            // maxs - mins
  127.  
  128. .void()        touch;
  129. .void()        use;
  130. .void()        think;
  131. .void()        blocked;        // for doors or plats, called when can't push other
  132.  
  133. .float        nextthink;
  134. .entity        groundentity;
  135.  
  136. // stats
  137. .float        health;
  138. .float        frags;
  139. .float        weapon;            // one of the IT_SHOTGUN, etc flags
  140. .string        weaponmodel;
  141. .float        weaponframe;
  142. .float        currentammo;
  143. .float        ammo_shells, ammo_nails, ammo_rockets, ammo_cells;
  144.  
  145. .float        items;            // bit flags
  146.  
  147. .float        takedamage;
  148. .entity        chain;
  149. .float        deadflag;
  150.  
  151. .vector        view_ofs;            // add to origin to get eye point
  152.  
  153.  
  154. .float        button0;        // fire
  155. .float        button1;        // use
  156. .float        button2;        // jump
  157.  
  158. .float        impulse;        // weapon changes
  159.  
  160. .float        fixangle;
  161. .vector        v_angle;        // view / targeting angle for players
  162. .float        idealpitch;        // calculated pitch angle for lookup up slopes
  163.  
  164.  
  165. .string        netname;
  166.  
  167. .entity     enemy;
  168.  
  169. .float        flags;
  170.  
  171. .float        colormap;
  172. .float        team;
  173.  
  174. .float        max_health;        // players maximum health is stored here
  175.  
  176. .float        teleport_time;    // don't back up
  177.  
  178. .float        armortype;        // save this fraction of incoming damage
  179. .float        armorvalue;
  180.  
  181. .float        waterlevel;        // 0 = not in, 1 = feet, 2 = wast, 3 = eyes
  182. .float        watertype;        // a contents value
  183.  
  184. .float        ideal_yaw;
  185. .float        yaw_speed;
  186.  
  187. .entity        aiment;
  188.  
  189. .entity     goalentity;        // a movetarget or an enemy
  190.  
  191. .float        spawnflags;
  192.  
  193. .string        target;
  194. .string        targetname;
  195.  
  196. // damage is accumulated through a frame. and sent as one single
  197. // message, so the super shotgun doesn't generate huge messages
  198. .float        dmg_take;
  199. .float        dmg_save;
  200. .entity        dmg_inflictor;
  201.  
  202. .entity        owner;        // who launched a missile
  203. .vector        movedir;    // mostly for doors, but also used for waterjump
  204.  
  205. .string        message;        // trigger messages
  206.  
  207. .float        sounds;        // either a cd track number or sound number
  208.  
  209. .string        noise, noise1, noise2, noise3;    // contains names of wavs to play
  210.  
  211. //================================================
  212. void        end_sys_fields;            // flag for structure dumping
  213. //================================================
  214.  
  215. // AXXGM START
  216. .entity         clone;
  217. .entity         mymissile;
  218. .float          missiletype;
  219. // AXXGM END
  220.  
  221. // AXXQT START
  222. .float torch_flag; 
  223. .entity my_torch;   
  224. // AXXQT END
  225.  
  226.  
  227. .float          entity_ID;                // AXXFR
  228. // AXXCU START
  229. .entity        Cujo;        // bot entity
  230. .float        Cujo_flag;    // existence of bot (TRUE or FALSE)
  231. .float        Cujo_attack;    // (TRUE or FALSE)
  232. .float              Cujo_view;      // (TRUE if seeing through Cujo, FALSE otherwise)
  233. .float              Cujo_stay;      // (TRUE if Cujo is not following player)
  234. .float              Cujo_avail;     // (TRUE if Cujo powerup taken during deathmatch)
  235. float  old_weapon;
  236. float  cujo_armorval;
  237. vector cujo_org;
  238. // Fields for ZEUS movement routines
  239. .float          ZEUS_stuck;
  240. .float          ZEUS_stuck_dir;
  241. .vector         ZEUS_own_lastorg;
  242. .float          upward_jump_vel;
  243. .float          forward_jump_vel;
  244. .float          CUJO_verbose;
  245. // AXXCU END
  246.  
  247. .string viewer;    // AXXCAM
  248.  
  249. /*
  250. ==============================================================================
  251.  
  252.                 VARS NOT REFERENCED BY C CODE
  253.  
  254. ==============================================================================
  255. */
  256.  
  257.  
  258. //
  259. // constants
  260. //
  261.  
  262. float    FALSE                    = 0;
  263. float     TRUE                    = 1;
  264.  
  265. // edict.flags
  266. float    FL_FLY                    = 1;
  267. float    FL_SWIM                    = 2;
  268. float    FL_CLIENT                = 8;    // set for all client edicts
  269. float    FL_INWATER                = 16;    // for enter / leave water splash
  270. float    FL_MONSTER                = 32;
  271. float    FL_GODMODE                = 64;    // player cheat
  272. float    FL_NOTARGET                = 128;    // player cheat
  273. float    FL_ITEM                    = 256;    // extra wide size for bonus items
  274. float    FL_ONGROUND                = 512;    // standing on something
  275. float    FL_PARTIALGROUND        = 1024;    // not all corners are valid
  276. float    FL_WATERJUMP            = 2048;    // player jumping out of water
  277. float    FL_JUMPRELEASED            = 4096;    // for jump debouncing
  278.  
  279. // AXXOB START
  280. float   FL_OBSERVER                     = 8192;  // ADDED FOR OBSERVER FLAG
  281. // AXXOB END
  282.  
  283. float    FL_AM_IT            = 32768;    // AXXTM
  284.  
  285.  
  286. // edict.movetype values
  287. float    MOVETYPE_NONE            = 0;    // never moves
  288. //float    MOVETYPE_ANGLENOCLIP    = 1;
  289. //float    MOVETYPE_ANGLECLIP        = 2;
  290. float    MOVETYPE_WALK            = 3;    // players only
  291. float    MOVETYPE_STEP            = 4;    // discrete, not real time unless fall
  292. float    MOVETYPE_FLY            = 5;
  293. float    MOVETYPE_TOSS            = 6;    // gravity
  294. float    MOVETYPE_PUSH            = 7;    // no clip to world, push and crush
  295. float    MOVETYPE_NOCLIP            = 8;
  296. float    MOVETYPE_FLYMISSILE        = 9;    // fly with extra size against monsters
  297. float    MOVETYPE_BOUNCE            = 10;
  298. float    MOVETYPE_BOUNCEMISSILE    = 11;    // bounce with extra size
  299.  
  300. // edict.solid values
  301. float    SOLID_NOT                = 0;    // no interaction with other objects
  302. float    SOLID_TRIGGER            = 1;    // touch on edge, but not blocking
  303. float    SOLID_BBOX                = 2;    // touch on edge, block
  304. float    SOLID_SLIDEBOX            = 3;    // touch on edge, but not an onground
  305. float    SOLID_BSP                = 4;    // bsp clip, touch on edge, block
  306.  
  307. // range values
  308. float    RANGE_MELEE                = 0;
  309. float    RANGE_NEAR                = 1;
  310. float    RANGE_MID                = 2;
  311. float    RANGE_FAR                = 3;
  312.  
  313. // deadflag values
  314.  
  315. float    DEAD_NO                = 0;
  316. float    DEAD_DYING                = 1;
  317. float    DEAD_DEAD                = 2;
  318. float    DEAD_RESPAWNABLE            = 3;
  319.  
  320. // takedamage values
  321.  
  322. float    DAMAGE_NO                = 0;
  323. float    DAMAGE_YES                = 1;
  324. float    DAMAGE_AIM                = 2;
  325.  
  326. // items
  327. float    IT_AXE                    = 4096;
  328. float    IT_THROWING_AXE            = 4097;     // AXXTA
  329. float    IT_SHOTGUN                = 1;
  330. float    IT_SUPER_SHOTGUN            = 2;
  331. float    IT_NAILGUN                = 4;
  332. float    IT_SUPER_NAILGUN            = 8;
  333. float     IT_BLAZEGUN                = 9;        // AXXBL     
  334. float    IT_GRENADE_LAUNCHER            = 16;
  335. float    IT_ROCKET_LAUNCHER            = 32;
  336. float     IT_SEEKER                = 33;         // AXXHM
  337. float    IT_LIGHTNING                = 64;
  338. float    IT_SNIPER                = 128; 
  339. float     IT_GRAPPLE                         = 3;
  340.  
  341.  
  342. float    IT_SHELLS                = 256;
  343. float    IT_NAILS                = 512;
  344. float    IT_ROCKETS                = 1024;
  345. float    IT_CELLS                = 2048;
  346.  
  347. float    IT_ARMOR1                = 8192;
  348. float    IT_ARMOR2                = 16384;
  349. float    IT_ARMOR3                = 32768;
  350. float    IT_SUPERHEALTH            = 65536;
  351.  
  352. float    IT_KEY1                = 131072;
  353. float    IT_KEY2                = 262144;
  354.  
  355. float    IT_INVISIBILITY            = 524288;
  356. float    IT_INVULNERABILITY            = 1048576;
  357. float    IT_SUIT                = 2097152;
  358. float    IT_QUAD                = 4194304;
  359.  
  360. // point content values
  361.  
  362. float    CONTENT_EMPTY            = -1;
  363. float    CONTENT_SOLID            = -2;
  364. float    CONTENT_WATER            = -3;
  365. float    CONTENT_SLIME            = -4;
  366. float    CONTENT_LAVA            = -5;
  367. float    CONTENT_SKY                = -6;
  368.  
  369. float    STATE_TOP        = 0;
  370. float    STATE_BOTTOM    = 1;
  371. float    STATE_UP        = 2;
  372. float    STATE_DOWN        = 3;
  373.  
  374. vector    VEC_ORIGIN = '0 0 0';
  375. vector    VEC_HULL_MIN = '-16 -16 -24';
  376. vector    VEC_HULL_MAX = '16 16 32';
  377.  
  378. vector    VEC_HULL2_MIN = '-32 -32 -24';
  379. vector    VEC_HULL2_MAX = '32 32 64';
  380.  
  381. // protocol bytes
  382. float    SVC_TEMPENTITY        = 23;
  383. float    SVC_KILLEDMONSTER    = 27;
  384. float    SVC_FOUNDSECRET        = 28;
  385. float    SVC_INTERMISSION    = 30;
  386. float    SVC_FINALE            = 31;
  387. float    SVC_CDTRACK            = 32;
  388. float    SVC_SELLSCREEN        = 33;
  389.  
  390.  
  391. float    TE_SPIKE        = 0;
  392. float    TE_SUPERSPIKE    = 1;
  393. float    TE_GUNSHOT        = 2;
  394. float    TE_EXPLOSION    = 3;
  395. float    TE_TAREXPLOSION    = 4;
  396. float    TE_LIGHTNING1    = 5;
  397. float    TE_LIGHTNING2    = 6;
  398. float    TE_WIZSPIKE        = 7;
  399. float    TE_KNIGHTSPIKE    = 8;
  400. float    TE_LIGHTNING3    = 9;
  401. float    TE_LAVASPLASH    = 10;
  402. float    TE_TELEPORT        = 11;
  403.  
  404. // sound channels
  405. // channel 0 never willingly overrides
  406. // other channels (1-7) allways override a playing sound on that channel
  407. float    CHAN_AUTO        = 0;
  408. float    CHAN_WEAPON        = 1;
  409. float    CHAN_VOICE        = 2;
  410. float    CHAN_ITEM        = 3;
  411. float    CHAN_BODY        = 4;
  412.  
  413. float    ATTN_NONE        = 0;
  414. float    ATTN_NORM        = 1;
  415. float    ATTN_IDLE        = 2;
  416. float    ATTN_STATIC        = 3;
  417.  
  418. // update types
  419.  
  420. float    UPDATE_GENERAL    = 0;
  421. float    UPDATE_STATIC    = 1;
  422. float    UPDATE_BINARY    = 2;
  423. float    UPDATE_TEMP        = 3;
  424.  
  425. // entity effects
  426.  
  427. float    EF_BRIGHTFIELD    = 1;
  428. float    EF_MUZZLEFLASH     = 2;
  429. float    EF_BRIGHTLIGHT     = 4;
  430. float    EF_DIMLIGHT     = 8;
  431.  
  432.  
  433. // messages
  434. float    MSG_BROADCAST    = 0;        // unreliable to all
  435. float    MSG_ONE            = 1;        // reliable to one (msg_entity)
  436. float    MSG_ALL            = 2;        // reliable to all
  437. float    MSG_INIT        = 3;        // write to the init string
  438.  
  439. // AXXCK START
  440. float WAITKILL             = 10;    // nuber of seconds until a waiter/camper/lurker is kicked
  441. float campercheck         = 0; 
  442. .float      camp_time;            // next camping check
  443. .float      camp_count;            // number of camping warnings
  444. .vector     camp_source;        // location of last check
  445. // AXXCK END
  446.  
  447. //================================================
  448.  
  449. //
  450. // globals
  451. //
  452. float    movedist;
  453. float    gameover;        // set when a rule exits
  454.  
  455. string    string_null;    // null string, nothing should be held here
  456. float    empty_float;
  457.  
  458. entity    newmis;            // launch_spike sets this after spawning it
  459.  
  460. entity    activator;        // the entity that activated a trigger or brush
  461.  
  462. entity    damage_attacker;    // set by T_Damage
  463. float    framecount;
  464.  
  465. float        skill;
  466. float anchor_flag /* = 0.000 */;    // AXXCAM
  467.  
  468.  
  469. //================================================
  470.  
  471. //
  472. // world fields (FIXME: make globals)
  473. //
  474. .string        wad;
  475. .string     map;
  476. .float        worldtype;    // 0=medieval 1=metal 2=base
  477.  
  478. //================================================
  479.  
  480. .string        killtarget;
  481.  
  482. //
  483. // quakeed fields
  484. //
  485. .float        light_lev;        // not used by game, but parsed by light util
  486. .float        style;
  487.  
  488.  
  489. //
  490. // monster ai
  491. //
  492. .void()        th_stand;
  493. .void()        th_walk;
  494. .void()        th_run;
  495. .void()        th_missile;
  496. .void()        th_melee;
  497. .void(entity attacker, float damage)        th_pain;
  498. .void()        th_die;
  499.  
  500. .entity        oldenemy;        // mad at this player before taking damage
  501.  
  502. .float        speed;
  503.  
  504. .float    lefty;
  505.  
  506. .float    search_time;
  507. .float    attack_state;
  508.  
  509. float    AS_STRAIGHT        = 1;
  510. float    AS_SLIDING        = 2;
  511. float    AS_MELEE        = 3;
  512. float    AS_MISSILE        = 4;
  513.  
  514. /*
  515. ------------------
  516. player only fields
  517. ------------------
  518. */
  519.  
  520. .float        walkframe;
  521. .float     attack_finished;
  522. .float        pain_finished;
  523.  
  524. // AXXHH START
  525. .entity    enemies_head;
  526. .entity    head_owner;
  527. .float        has_enemies_head;
  528. .float        has_owner;
  529. .float        removed_heads;
  530. .float        on_alter;
  531. .float        haunting;
  532. .float        is_head;
  533. .vector    alter_pos;
  534. .vector    head_velocity;
  535. // AXXHH END
  536.  
  537.  
  538. // AXXRG START
  539. .float          duration;  // duration of rocket existance
  540. .float          use_counter_shot;
  541. .float          use_av_shot;
  542. .float          use_last_shot;
  543. .float          jammed_shot;
  544. .float          use_counter_ng;
  545. .float          use_av_ng;
  546. .float          use_last_ng;
  547. .float          jammed_ng;
  548. .float          use_counter_sng;
  549. .float          use_av_sng;
  550. .float          use_last_sng;
  551. .float          jammed_sng;
  552. .float          use_counter_rocket;
  553. .float          use_av_rocket;
  554. .float          use_last_rocket;
  555. .float          jammed_rocket;
  556. .float          use_counter_gl;
  557. .float          use_av_gl;
  558. .float          use_last_gl;
  559. .float          jammed_gl;
  560. .float          use_counter_ss;
  561. .float          use_av_ss;
  562. .float          use_last_ss;
  563. .float          jammed_ss;
  564. .float          jammed_death; //0 = none  1 = gl  2 = rl
  565. //AXXRG END
  566.  
  567. // AXXID START
  568. .float ID_time;        // Time until next ID unless re-aimed
  569. .entity ID_ent;        // Last entity ID'ed
  570. // AXXID END
  571.  
  572.  
  573.  float         tracer;     // AXXTR
  574. .float        invincible_finished;
  575. .float        invisible_finished;
  576. .float        shambler_finished; // AXXSH
  577. .float        fiend_finished; // AXXSH
  578. .float        super_damage_finished;
  579. .float        radsuit_finished;
  580.  
  581. .float        invincible_time, invincible_sound;
  582. .float        invisible_time, invisible_sound;
  583. .float     fiend_time, shambler_time; // AXXSH
  584. .float        super_time, super_sound;
  585. .float        rad_time;
  586. .float        fly_sound;
  587.  
  588. .float        axhitme;
  589.  
  590. .float        sight_out;    // AXXLS TRUE = if Laser Sight is activated
  591.  
  592. .float        show_hostile;    // set to time+0.2 whenever a client fires a
  593.                             // weapon or takes damage.  Used to alert
  594.                             // monsters that otherwise would let the player go
  595. .float        jump_flag;        // player jump flag
  596. .float        swim_flag;        // player swimming sound flag
  597. .float        air_finished;    // when time > air_finished, start drowning
  598. .float        bubble_count;    // keeps track of the number of bubbles
  599. .string        deathtype;        // keeps track of how the player died
  600.  
  601. //
  602. // object stuff
  603. //
  604. .string        mdl;
  605. .vector        mangle;            // angle at start
  606.  
  607. .vector        oldorigin;        // only used by secret door
  608.  
  609. .float        t_length, t_width;
  610.  
  611.  
  612. //
  613. // doors, etc
  614. //
  615. .vector        dest, dest1, dest2;
  616. .float        wait;            // time from firing to restarting
  617. .float        delay;            // time from activation to firing
  618. .entity        trigger_field;    // door's trigger entity
  619. .string        noise4;
  620.  
  621. //
  622. // monsters
  623. //
  624. .float         pausetime;
  625. .entity     movetarget;
  626.  
  627.  
  628. //
  629. // doors
  630. //
  631. .float        aflag;
  632. .float        dmg;            // damage done by door when hit
  633.     
  634. //
  635. // misc
  636. //
  637. .float        cnt;             // misc flag
  638.     
  639. //
  640. // subs
  641. //
  642. .void()        think1;
  643. .vector        finaldest, finalangle;
  644.  
  645. //
  646. // triggers
  647. //
  648. .float        count;            // for counting triggers
  649.  
  650.  
  651. //
  652. // plats / doors / buttons
  653. //
  654. .float        lip;
  655. .float        state;
  656. .vector        pos1, pos2;        // top and bottom positions
  657. .float        height;
  658.  
  659. //
  660. // sounds
  661. //
  662. .float        waitmin, waitmax;
  663. .float        distance;
  664. .float        volume;
  665.  
  666.  
  667.  
  668.  
  669. //===========================================================================
  670.     
  671.  
  672. //
  673. // builtin functions
  674. //
  675.  
  676. void(vector ang)    makevectors        = #1;        // sets v_forward, etc globals
  677. void(entity e, vector o) setorigin    = #2;
  678. void(entity e, string m) setmodel    = #3;        // set movetype and solid first
  679. void(entity e, vector min, vector max) setsize = #4;
  680. // #5 was removed
  681. void() break                        = #6;
  682. float() random                        = #7;        // returns 0 - 1
  683. void(entity e, float chan, string samp, float vol, float atten) sound = #8;
  684. vector(vector v) normalize            = #9;
  685. void(string e) error                = #10;
  686. void(string e) objerror                = #11;
  687. float(vector v) vlen                = #12;
  688. float(vector v) vectoyaw            = #13;
  689. entity() spawn                        = #14;
  690. void(entity e) remove                = #15;
  691.  
  692. // sets trace_* globals
  693. // nomonsters can be:
  694. // An entity will also be ignored for testing if forent == test,
  695. // forent->owner == test, or test->owner == forent
  696. // a forent of world is ignored
  697. void(vector v1, vector v2, float nomonsters, entity forent) traceline = #16;    
  698.  
  699. entity() checkclient                = #17;    // returns a client to look for
  700. entity(entity start, .string fld, string match) find = #18;
  701. string(string s) precache_sound        = #19;
  702. string(string s) precache_model        = #20;
  703. void(entity client, string s)stuffcmd = #21;
  704. entity(vector org, float rad) findradius = #22;
  705. void(string s) bprint                = #23;
  706. void(entity client, string s) sprint = #24;
  707. void(string s) dprint                = #25;
  708. string(float f) ftos                = #26;
  709. string(vector v) vtos                = #27;
  710. void() coredump                        = #28;        // prints all edicts
  711. void() traceon                        = #29;        // turns statment trace on
  712. void() traceoff                        = #30;
  713. void(entity e) eprint                = #31;        // prints an entire edict
  714. float(float yaw, float dist) walkmove    = #32;    // returns TRUE or FALSE
  715. // #33 was removed
  716. float(float yaw, float dist) droptofloor= #34;    // TRUE if landed on floor
  717. void(float style, string value) lightstyle = #35;
  718. float(float v) rint                    = #36;        // round to nearest int
  719. float(float v) floor                = #37;        // largest integer <= v
  720. float(float v) ceil                    = #38;        // smallest integer >= v
  721. // #39 was removed
  722. float(entity e) checkbottom            = #40;        // true if self is on ground
  723. float(vector v) pointcontents        = #41;        // returns a CONTENT_*
  724. // #42 was removed
  725. float(float f) fabs = #43;
  726. vector(entity e, float speed) aim = #44;        // returns the shooting vector
  727. float(string s) cvar = #45;                        // return cvar.value
  728. void(string s) localcmd = #46;                    // put string into local que
  729. entity(entity e) nextent = #47;                    // for looping through all ents
  730. void(vector o, vector d, float color, float count) particle = #48;// start a particle effect
  731. void() ChangeYaw = #49;                        // turn towards self.ideal_yaw
  732.                                             // at self.yaw_speed
  733. // #50 was removed
  734. vector(vector v) vectoangles            = #51;
  735.  
  736. //
  737. // direct client message generation
  738. //
  739. void(float to, float f) WriteByte        = #52;
  740. void(float to, float f) WriteChar        = #53;
  741. void(float to, float f) WriteShort        = #54;
  742. void(float to, float f) WriteLong        = #55;
  743. void(float to, float f) WriteCoord        = #56;
  744. void(float to, float f) WriteAngle        = #57;
  745. void(float to, string s) WriteString    = #58;
  746. void(float to, entity s) WriteEntity    = #59;
  747.  
  748. //
  749. // broadcast client message generation
  750. //
  751.  
  752. // void(float f) bWriteByte        = #59;
  753. // void(float f) bWriteChar        = #60;
  754. // void(float f) bWriteShort        = #61;
  755. // void(float f) bWriteLong        = #62;
  756. // void(float f) bWriteCoord        = #63;
  757. // void(float f) bWriteAngle        = #64;
  758. // void(string s) bWriteString    = #65;
  759. // void(entity e) bWriteEntity = #66;
  760.  
  761. void(float step) movetogoal                = #67;
  762.  
  763. string(string s) precache_file        = #68;    // no effect except for -copy
  764. void(entity e) makestatic        = #69;
  765. void(string s) changelevel = #70;
  766.  
  767. //#71 was removed
  768.  
  769. void(string var, string val) cvar_set = #72;    // sets cvar.value
  770.  
  771. void(entity client, string s) centerprint = #73;    // sprint, but in middle
  772.  
  773. void(vector pos, string samp, float vol, float atten) ambientsound = #74;
  774.  
  775. string(string s) precache_model2    = #75;        // registered version only
  776. string(string s) precache_sound2    = #76;        // registered version only
  777. string(string s) precache_file2        = #77;        // registered version only
  778.  
  779. void(entity e) setspawnparms        = #78;        // set parm1... to the
  780.                                                 // values at level start
  781.                                                 // for coop respawn
  782.  
  783. //============================================================================
  784.  
  785. //
  786. // subs.qc
  787. //
  788. void(vector tdest, float tspeed, void() func) SUB_CalcMove;
  789. void(entity ent, vector tdest, float tspeed, void() func) SUB_CalcMoveEnt;
  790. void(vector destangle, float tspeed, void() func) SUB_CalcAngleMove;
  791. void()  SUB_CalcMoveDone;
  792. void() SUB_CalcAngleMoveDone;
  793. void() SUB_Null;
  794. void() SUB_UseTargets;
  795. void() SUB_Remove;
  796.  
  797. //
  798. //    combat.qc
  799. //
  800. void(entity targ, entity inflictor, entity attacker, float damage) T_Damage;
  801.  
  802.  
  803. float (entity e, float healamount, float ignore) T_Heal; // health function
  804.  
  805. float(entity targ, entity inflictor) CanDamage;
  806.  
  807. // AXXHO START
  808. .float holo; //Hologram counter!
  809. entity hologram;  //Hologram entity!
  810. .entity myhologram;
  811. .float holoff;
  812. .float holotype;
  813. // .float camera;  //Use this variable to determine if the HOLOGRAM camera
  814.                   //is ON or OFF.  This is important because if the player
  815.                   //detonates the HOLOGRAM while the camera is on...then
  816.                   //all sorts of funky things happen with the camera view!
  817. // AXXHO END
  818.  
  819.  
  820. // AXXAD START
  821.         .float          admin;
  822.         .float          indata;
  823.         .float          kick;
  824.         .entity         kicker;
  825. // AXXAD END
  826.  
  827. .float skin_temp;    // AXXMS
  828. .float prev_skin;    // AXXMS
  829.  
  830. // AXXRC START
  831. float ricochet;
  832. // AXXRC END
  833.  
  834. // AXXND START
  835. // Code for monsters that aren't deaf.
  836. float SC_LONG  = 1000;
  837. float SC_MED   = 600;
  838. float SC_SHORT = 300;
  839. float SC_CLOSE = 150;
  840. // AXXND END
  841.  
  842. // AXXTA START
  843. .float num_axes;
  844. .float num_bounces;
  845. // AXXTA END
  846.  
  847. // AXXSH START
  848. float CL_MARINE         = 0;
  849. float CL_FIEND          = 1;
  850. float CL_SHAMBLER       = 2;
  851. .float runepower;
  852. .float haste_sound;
  853. float    modelindex_eyes, modelindex_player;
  854. float modelindex_demon, modelindex_shambler;
  855.  
  856.  
  857.  
  858. // now a part of entity
  859. .float class;
  860. .float nextclass;
  861. entity() SelectSpawnPoint;
  862.  
  863.  
  864. float NEW_WEAPON_BOLT       = 256;
  865. float NEW_WEAPON_MELEE      = 1024;
  866.  
  867. // Function prototypes
  868. void() player_demon_melee;
  869. void() player_shambler_melee;
  870. void() player_shambler_bolt;
  871. void() player_demon_jump;
  872.  
  873. void() player_demon_pain;
  874. void() player_shambler_pain;
  875.  
  876. void() player_demon_die;
  877. void() player_shambler_die;
  878.  
  879. void() Player_Demon_JumpTouch;
  880. void(float side) Player_Demon_Attack;
  881.  
  882. // AXXSH END
  883.  
  884. // AXXAF START
  885. float IT_AIRGUN   = 8388608;
  886. // Variables used for the gun.
  887.  
  888. // Used to flag states for entity's for the AirFist mod.
  889. .float AIRG_Flags;
  890.  
  891. // Variables used to track when to turn of FLY movetype for flying entity's
  892. .entity AIRG_FlyTracker;
  893.  
  894. // Constant used on the AIRG_Flags to specifiy that we have converted this
  895. // flying monsters movetype from MOVETYPE_STEP to MOVETYPE_FLY (see horn.qc for
  896. // more info).
  897. float AIRG_STEPCONVERTEDTOFLY = 2;
  898.  
  899. // AIRG_WEAPON_END
  900.  
  901.  
  902. // AIRG_EXCLUDE_START
  903.  
  904. // Air Gun flag constants.
  905. // Setting an entity's AIRG_Flags excludes it from harm
  906. float AIRG_EXCLUDEENTITY = 1;
  907.  
  908. // At the moment the AIRG_Flags variable is used only for the exclusion routine
  909. // but this may change.
  910.  
  911. // AIRG_EXCLUDE_END
  912.  
  913.  
  914. // AIRG_MAIN_START
  915.  
  916. // Used in the Max Fire Rate Calculations.
  917. .float AIRG_FireCount;
  918. .float AIRG_Timeout;
  919.  
  920.  
  921. // Prototypes used
  922. void() launch_horn;
  923. .float PW_prevweapon;
  924. // AXXAF END
  925.  
  926. float RandomItems; // AXXRI
  927. float JamWeapons; // AXXRG
  928. float cbot_friendly; // AXXEL
  929.  
  930. .string blownup_by; // AXXEB
  931.  
  932. .float camon;    // AXXDC
  933.  
  934. // AXXTM START
  935. float           world_flag;    //are flags placed?
  936. float        world_hill;    //is hill placed?
  937. float        oldteamplay;    //for sensing change in teamplay
  938. float           numplayers;
  939.  
  940. float   FLAG_1 = 1;
  941. float   FLAG_2 = 2;
  942. float   FLAG_BOTH = 3;
  943.  
  944. .float flaginv;
  945. .float flagtime;    //only purpose is to see how long play has had own flag 
  946. .entity friend;
  947. // AXXTM END
  948.  
  949. .float NewPlayer; // AXXMD
  950.  
  951. // AXXGR START
  952. .float  on_hook;// TRUE if hook is anchored and client is being pulled
  953. .float  hook_out;// TRUE if hook is in use
  954. .float  hook_gone;
  955. .entity hook;// pointer to client's hook
  956. .float  fire_held_down;// flag - TRUE if player is still holding down the
  957.                        // fire button after throwing a hook.
  958.  
  959. // AXXGR END
  960.  
  961. .float zoomed;                // AXXSN
  962.  
  963.  
  964.  
  965.